Low-Cost, Concurrent Checking of Pointer and Array Accesses in C Programs

نویسندگان

  • Harish Patil
  • Charles N. Fischer
چکیده

Execution Shadow processing was motivated, in part, by a tool called AE that supports abstract execution [17]. AE is used for efficient generation of detailed program traces. A source program, in C, is instrumented to record a small set of key events during execution. After execution these events serve as input to an abstract version of the original program that can recreate a full trace of the original program. The events recorded by the original program include control flow decisions. These are essentially the same data needed by a shadow process to follow a main process. AE is a post-run technique that shifts some of the costs involved in tracing certain incidents during a program’s execution to the program that uses those incidents. In contrast, shadow processing is a run-time technique that removes expensive tracing from the critical execution path of a program and shifts it to another processor. Table 7: Concurrent Guarding using Shadow Processing: (user + system) time Program Original (time in seconds) Embedded Checking Shadow Guarding Purified (% increase) Guarded (% increase) Main (% increase) Shadow: without output calls (% increase) alvinn (50 epochs) 25.6 s 774.6% 472.3% < 1% 472.3% compress 2.9 s 748.3% 113.8% 10.3% 89.7% decompress 2.0 s 765.0% 145.0% 10.0% 85.0% ear 305.4 s 589.1% 642.0% < 1% 636.4% eqntott 18.8 s 735.6% 1337.2% 3.2% 1328.2% espresso 7.9 s 1107.6% 648.1% 1.3% 650.6% sc (loadc2) 38.6 s 613.5% 173.3% 6.7% 95.1% xlisp 122.1 s 988.1% 775.6% 5.6% 787.6%

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Automatic Array Access Recovery in Pointer based DSP Codes

Efficient implementation of DSP applications are critical for embedded systems. However, current applications written in C, make extensive use of pointer arithmetic making compiler analysis and optimisation difficult. This paper presents a method for conversion of a restricted class of pointer-based memory accesses typically found in DSP codes into array accesses with explicit index functions. ...

متن کامل

Safe Systems Programming Languages

The C programming language provides explicit memory management, precise control over low-level data representations and high code efficiency. These features are indispensable for systems programming. However, C achieved these goals at the cost of sacrificing type safety. Safety violations like array out-of-bound accesses and dangling pointer accesses lead to a huge amount of well-known software...

متن کامل

Region Analysis for Race Detection

Automatic race detection of C programs requires fast, yet sufficiently precise, analysis of dynamic memory. Therefore, we present a region-based pointer analysis which seeks to identify disjoint regions of dynamically allocated objects to ensure that write accesses to the same region are always protected by the same mutexes. Our approach has been implemented within the interprocedural analyzer ...

متن کامل

Compiler Transformation of Pointers to Explicit Array Accesses in DSP Applications

Efficient implementation of DSP applications are critical for embedded systems. However, current applications written in C, make extensive use of pointer arithmetic making compiler analysis and optimisation difficult. This paper presents a method for conversion of a restricted class of pointer-based memory accesses typically found in DSP codes into array accesses with explicit index functions. ...

متن کامل

CUTE and jCUTE : Concolic Unit Testing and Explicit Path Model-Checking Tools (Tools Paper)

CUTE, a Concolic Unit Testing Engine for C and Java, is a tool to systematically and automatically test sequential C programs (including pointers) and concurrent Java programs. CUTE combines concrete and symbolic execution in a way that avoids redundant test cases as well as false warnings. The tool also introduces a race-flipping technique to efficiently test and model check concurrent program...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • Softw., Pract. Exper.

دوره 27  شماره 

صفحات  -

تاریخ انتشار 1997